import { airtableWebhookTrigger } from '@/triggers/airtable'
import {
  calendlyInviteeCanceledTrigger,
  calendlyInviteeCreatedTrigger,
  calendlyRoutingFormSubmittedTrigger,
  calendlyWebhookTrigger,
} from '@/triggers/calendly'
import { genericWebhookTrigger } from '@/triggers/generic'
import {
  githubIssueClosedTrigger,
  githubIssueCommentTrigger,
  githubIssueOpenedTrigger,
  githubPRClosedTrigger,
  githubPRCommentTrigger,
  githubPRMergedTrigger,
  githubPROpenedTrigger,
  githubPRReviewedTrigger,
  githubPushTrigger,
  githubReleasePublishedTrigger,
  githubWebhookTrigger,
  githubWorkflowRunTrigger,
} from '@/triggers/github'
import { gmailPollingTrigger } from '@/triggers/gmail'
import { googleFormsWebhookTrigger } from '@/triggers/googleforms'
import {
  hubspotCompanyCreatedTrigger,
  hubspotCompanyDeletedTrigger,
  hubspotCompanyPropertyChangedTrigger,
  hubspotContactCreatedTrigger,
  hubspotContactDeletedTrigger,
  hubspotContactPrivacyDeletedTrigger,
  hubspotContactPropertyChangedTrigger,
  hubspotConversationCreationTrigger,
  hubspotConversationDeletionTrigger,
  hubspotConversationNewMessageTrigger,
  hubspotConversationPrivacyDeletionTrigger,
  hubspotConversationPropertyChangedTrigger,
  hubspotDealCreatedTrigger,
  hubspotDealDeletedTrigger,
  hubspotDealPropertyChangedTrigger,
  hubspotTicketCreatedTrigger,
  hubspotTicketDeletedTrigger,
  hubspotTicketPropertyChangedTrigger,
} from '@/triggers/hubspot'
import {
  jiraIssueCommentedTrigger,
  jiraIssueCreatedTrigger,
  jiraIssueDeletedTrigger,
  jiraIssueUpdatedTrigger,
  jiraWebhookTrigger,
  jiraWorklogCreatedTrigger,
} from '@/triggers/jira'
import {
  linearCommentCreatedTrigger,
  linearCommentUpdatedTrigger,
  linearCustomerRequestCreatedTrigger,
  linearCustomerRequestUpdatedTrigger,
  linearCycleCreatedTrigger,
  linearCycleUpdatedTrigger,
  linearIssueCreatedTrigger,
  linearIssueRemovedTrigger,
  linearIssueUpdatedTrigger,
  linearLabelCreatedTrigger,
  linearLabelUpdatedTrigger,
  linearProjectCreatedTrigger,
  linearProjectUpdateCreatedTrigger,
  linearProjectUpdatedTrigger,
  linearWebhookTrigger,
} from '@/triggers/linear'
import {
  microsoftTeamsChatSubscriptionTrigger,
  microsoftTeamsWebhookTrigger,
} from '@/triggers/microsoftteams'
import { outlookPollingTrigger } from '@/triggers/outlook'
import { slackWebhookTrigger } from '@/triggers/slack'
import { stripeWebhookTrigger } from '@/triggers/stripe'
import { telegramWebhookTrigger } from '@/triggers/telegram'
import { twilioVoiceWebhookTrigger } from '@/triggers/twilio_voice'
import { typeformWebhookTrigger } from '@/triggers/typeform'
import type { TriggerRegistry } from '@/triggers/types'
import {
  webflowCollectionItemChangedTrigger,
  webflowCollectionItemCreatedTrigger,
  webflowCollectionItemDeletedTrigger,
  webflowFormSubmissionTrigger,
} from '@/triggers/webflow'
import { whatsappWebhookTrigger } from '@/triggers/whatsapp'

export const TRIGGER_REGISTRY: TriggerRegistry = {
  slack_webhook: slackWebhookTrigger,
  airtable_webhook: airtableWebhookTrigger,
  calendly_webhook: calendlyWebhookTrigger,
  calendly_invitee_created: calendlyInviteeCreatedTrigger,
  calendly_invitee_canceled: calendlyInviteeCanceledTrigger,
  calendly_routing_form_submitted: calendlyRoutingFormSubmittedTrigger,
  generic_webhook: genericWebhookTrigger,
  github_webhook: githubWebhookTrigger,
  github_issue_opened: githubIssueOpenedTrigger,
  github_issue_closed: githubIssueClosedTrigger,
  github_issue_comment: githubIssueCommentTrigger,
  github_pr_opened: githubPROpenedTrigger,
  github_pr_closed: githubPRClosedTrigger,
  github_pr_merged: githubPRMergedTrigger,
  github_pr_comment: githubPRCommentTrigger,
  github_pr_reviewed: githubPRReviewedTrigger,
  github_push: githubPushTrigger,
  github_release_published: githubReleasePublishedTrigger,
  github_workflow_run: githubWorkflowRunTrigger,
  gmail_poller: gmailPollingTrigger,
  jira_webhook: jiraWebhookTrigger,
  jira_issue_created: jiraIssueCreatedTrigger,
  jira_issue_updated: jiraIssueUpdatedTrigger,
  jira_issue_deleted: jiraIssueDeletedTrigger,
  jira_issue_commented: jiraIssueCommentedTrigger,
  jira_worklog_created: jiraWorklogCreatedTrigger,
  linear_webhook: linearWebhookTrigger,
  linear_issue_created: linearIssueCreatedTrigger,
  linear_issue_updated: linearIssueUpdatedTrigger,
  linear_issue_removed: linearIssueRemovedTrigger,
  linear_comment_created: linearCommentCreatedTrigger,
  linear_comment_updated: linearCommentUpdatedTrigger,
  linear_project_created: linearProjectCreatedTrigger,
  linear_project_updated: linearProjectUpdatedTrigger,
  linear_cycle_created: linearCycleCreatedTrigger,
  linear_cycle_updated: linearCycleUpdatedTrigger,
  linear_label_created: linearLabelCreatedTrigger,
  linear_label_updated: linearLabelUpdatedTrigger,
  linear_project_update_created: linearProjectUpdateCreatedTrigger,
  linear_customer_request_created: linearCustomerRequestCreatedTrigger,
  linear_customer_request_updated: linearCustomerRequestUpdatedTrigger,
  microsoftteams_webhook: microsoftTeamsWebhookTrigger,
  microsoftteams_chat_subscription: microsoftTeamsChatSubscriptionTrigger,
  outlook_poller: outlookPollingTrigger,
  stripe_webhook: stripeWebhookTrigger,
  telegram_webhook: telegramWebhookTrigger,
  typeform_webhook: typeformWebhookTrigger,
  whatsapp_webhook: whatsappWebhookTrigger,
  google_forms_webhook: googleFormsWebhookTrigger,
  twilio_voice_webhook: twilioVoiceWebhookTrigger,
  webflow_collection_item_created: webflowCollectionItemCreatedTrigger,
  webflow_collection_item_changed: webflowCollectionItemChangedTrigger,
  webflow_collection_item_deleted: webflowCollectionItemDeletedTrigger,
  webflow_form_submission: webflowFormSubmissionTrigger,
  hubspot_contact_created: hubspotContactCreatedTrigger,
  hubspot_contact_deleted: hubspotContactDeletedTrigger,
  hubspot_contact_privacy_deleted: hubspotContactPrivacyDeletedTrigger,
  hubspot_contact_property_changed: hubspotContactPropertyChangedTrigger,
  hubspot_company_created: hubspotCompanyCreatedTrigger,
  hubspot_company_deleted: hubspotCompanyDeletedTrigger,
  hubspot_company_property_changed: hubspotCompanyPropertyChangedTrigger,
  hubspot_conversation_creation: hubspotConversationCreationTrigger,
  hubspot_conversation_deletion: hubspotConversationDeletionTrigger,
  hubspot_conversation_new_message: hubspotConversationNewMessageTrigger,
  hubspot_conversation_privacy_deletion: hubspotConversationPrivacyDeletionTrigger,
  hubspot_conversation_property_changed: hubspotConversationPropertyChangedTrigger,
  hubspot_deal_created: hubspotDealCreatedTrigger,
  hubspot_deal_deleted: hubspotDealDeletedTrigger,
  hubspot_deal_property_changed: hubspotDealPropertyChangedTrigger,
  hubspot_ticket_created: hubspotTicketCreatedTrigger,
  hubspot_ticket_deleted: hubspotTicketDeletedTrigger,
  hubspot_ticket_property_changed: hubspotTicketPropertyChangedTrigger,
}
